package com.qf.listener;

import com.rabbitmq.client.Channel;//底层 RabbitMQ一次连接 多个信道 多
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Service;

import java.util.Map;

/**
 * 自定义了一个监听器  监听RabbitMQ的队列的消息
 *
 * @Service @Mapper @Controller  @Component 全好用 语义不一样
 * @author lixu
 */
//@Service//实例化
//@RabbitListener(queues = {"queue1","queue2","queue3"})
//@RabbitListener(queues = {"queue1"})//监听器注解
public class RabbitMQListener {


    /**
     * 接收监听到的消息
     *   Message：消息类型的一个对象
     *     1、消息属性
     *        一大堆属性(消息的ID） 唯一   消息的标识
     *        一大堆消息头
     *     2、消息体 （消息本身）
     *        投递的消息内容
     */
    @RabbitHandler
    public void receiverMessage(Message message, Map map, Channel channel){
        System.out.println("接收到消息： " + map);
/*        byte[] body = message.getBody();
        String s = new String(body);
        System.out.println("接收到消息： " + s );*/
    }
    /**
     * queue1 : 投递的消息是Map类型
     * queue2 : 投递的消息是User对象
     * queue3 :  List<User>
     */


}
